import time


def metric(fn):
    """
    装饰器，打印函数执行时间。

    :param fn: 任意函数
    :return: 返回一个带打印fn执行时间功能的函数
    """
    def log_run_time(*arg, **kw):
        start_time = time.time()
        ret = fn(*arg, **kw)
        end_time = time.time()

        print("函数: {} 耗时: {:.4f}s".format(fn.__name__, end_time - start_time))

        return ret

    return log_run_time


if __name__ == '__main__':
    # 测试
    @metric
    def delay_sec(secs):
        time.sleep(secs)

    delay_sec(1)